/**
 * @description 字符串数据脱敏
 * @param {object} 配置
 * @returns {string} 脱敏后的字符串
 */
export default function stringMasking(config = {}) {
	const {
		str = "", // 需要脱敏的字符串
		symbol = "*", // 脱敏内容替换的符号
		prevLen = 3, // 保留的前几位
		nextLen = 4, // 保留的后几位
		symbolLen = 4 // 脱贫符号最大的数量
	} = config;

	// 空字符串，直接返回
	if (!str) return str;

	// 总长度达不到脱敏要求，直接返回
	if (prevLen + nextLen > str.length) {
		return str;
	}

	// 从 prevLen 开始截取，截取到 str.length - nextLen
	return str.slice(0, prevLen) + symbol.repeat(symbolLen) + str.slice(-nextLen);
}
